/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.srcptit.trainning.b2;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.StringTokenizer;

/**
 *
 * @author Administrator
 */
public class Bai10DemSoNguyenTo {
    public static void main(String[] args) {
        int[] a = new int[100];
        int[] dd = new int[100];
        try{
                BufferedReader br = new BufferedReader(new FileReader("B9Data.txt"));
                String s = "";
                int i = 0;
                while(br.ready()){
                    s+=br.readLine();
                    s+=" ";
                }
                StringTokenizer sub = new StringTokenizer(s);
                System.out.println("Dãy số nguyên đọc được là:");
                while(sub.countTokens()>0){
                    a[i] = Integer.parseInt(sub.nextToken());
                    dd[i] = 1;
                    System.out.print(a[i]+" ");
                    i++;
                }
                System.out.println("");
                int n = i;
                for(i=0;i<n-1;i++)
                    if(dd[i]==1){
                        if(isPrime(a[i])){
                            for(int j=i+1;j<n;j++)
                                if(a[i]==a[j] || isPrime(a[j])!=true)
                                    dd[j]=0;
                        }
                        else dd[i]=0;
                    }     
                int dem = 0;
                       for(i=0;i<n;i++) if(dd[i]==1)
                           dem += dd[i];
                System.out.println("Số các số nguyên tố khác nhau là "+dem);
        }catch(FileNotFoundException e){
            System.out.println("Không tìm thấy file");
        }catch(NumberFormatException e){
            System.out.println("Dữ liệu sai định dạng");
        }catch(Exception e){
            System.out.println("Lỗi không xác định");
        }finally{
            System.out.println("Done!");
        }
    }
    static boolean isPrime(int n){
        if(n<2) return false;
        if(n==2) return true;
        if(n%2==0) return false;
        for(int i=3;i<=(int)Math.sqrt(n);i+=2)
            if(n%i==0) return false;
        return true;
    }
}
